In a communication system, incoming packets are spread among a number of packet processors, for example, for address lookup and segmentation into cells. Each packet processor has a limited throughput data rate and a limited packet lookup rate. It is desirable for the incoming packets to be spread among the number of packet processors in such a way that the packet processing load is balanced among the number of packet processors. For example, it is desirable to avoid over-subscribing one packet processor while other packet processors are under-subscribed.